package day03;

public class OperDemoExercise {
    public static void main(String[] args) {
        /**
         * 1. 运算符的练习：算术
         *
         *    - 输出几个整数取模，验证结果
         *    - 声明两个整型变量，演示单独使用时的自增和自减
         *    - 声明几个整型变量，演示被使用时的自增和自减
         */
        System.out.println(5%2);//1
        System.out.println(6%2);//0
        System.out.println(8%3);//2
        int a=3,b=5;
        a++;
        --b;
        System.out.println(a);//4
        System.out.println(b);//4
        int c=a++ +3;
        int d=--b+3;
        System.out.println(a);//5
        System.out.println(b);//3
        System.out.println(c);//7
        System.out.println(d);//6
        /**
         * 1. 运算符的练习：关系
         *
         *    - 声明几个变量，演示最基本的>，<，>=，<=，==，!=操作
         *    - 演示关系运算符和算术运算符联合使用的效果
         */
        /*
        int a0=5,b0=8,c0=5;
        System.out.println(a0<b0);//true
        System.out.println(a0>b0);//false
        System.out.println(a0>=c0);//true
        System.out.println(b0<=c0);//false
        System.out.println(a0==c0);//true
        System.out.println(a0!=c0);//false
        System.out.println(a0+b0>10);//true
        System.out.println(b0%2>0);//false
        System.out.println(c0++>5);//false
        System.out.println(c0++>5);//true

         */
        /**
         * 1. 运算符的练习：逻辑
         *
         *    - 声明三个整型变量，演示&&和||，演示!
         *      - &&的演示要求：true+false、false+true、true+true、false+false
         *      - ||的演示要求：true+false、false+true、true+true、false+false
         *      - !的演示要求：true、false
         *    - 演示短路&&与短路||
         */
        int a1=3,b1=4,c1=5;
        System.out.println(a1+1==b1&&a1>b1);//false
        System.out.println(a1>b1&&b1<c1);//false
        System.out.println(a1<b1&&b1<c1);//true
        System.out.println(a1>c1&&b1>c1);//false
        System.out.println(a1+1==b1||a1>b1);//true
        System.out.println(a1>b1||b1<c1);//true
        System.out.println(a1<b1||b1>c1);//true
        System.out.println(a1>c1||b1>c1);//false
        System.out.println(!(a1>b1));//true
        System.out.println(!(b1<c1));//false
        System.out.println(a1>b1&&c1++>5);//false
        System.out.println(c1);//5
        System.out.println(a1<b1||c1++>5);//true
        System.out.println(c1);//5
        /**
         * 1. 运算符的练习：赋值
         *
         *    - 声明一个整型变量，演示扩展赋值+=、-=、*=、/=、%=的效果
         *    - 声明short型变量s，演示简单赋值运算的自增10，演示扩展赋值运算的自增10
         */
        int a2=9;
        System.out.println(a2+=2);//11
        System.out.println(a2-=2);//9
        System.out.println(a2*=2);//18
        System.out.println(a2/=2);//9
        System.out.println(a2%=2);//1
        short s=3;
        s=(short) (s+10);
        System.out.println(s);//13
        s+=10;
        System.out.println(s);//23
        /**
         * 1. 运算符的练习：字符串连接
         *
         *    - 声明整型变量age和字符串型变量name，输出字符串连接的结果
         *    - 输出几个数据的拼接，演示字符串连接的同化作用
         */
        int age=10;
        String name="kdd";
        System.out.println("我叫"+name+",今年"+age+"岁了");
        System.out.println(10+20+30+"");//60
        System.out.println(""+10+20+30);//102030
        System.out.println(10+""+20+30);//102030
        /**
         * 1. 运算符的练习：条件/三目
         *
         *    - 声明并初始化整型变量，使用条件运算符实现：若>0则给flag赋值为1，否则赋值为0
         *    - 声明两个整型变量，使用条件运算符实现：求这两个变量的最大值
         */
        int a3=10;
        int flag=a3>0?1:0;
        System.out.println(flag);
        int a4=4,a5=7;
        int max=a4>a5?a4:a5;
        System.out.println(max);
        /**
         *
         * 7. 分支结构的练习：if
         *
         *    - 满500打8折
         *    - 判断成绩是否合法
         */
        int price=800;
        if (price>=500){
            price*=0.8;
        }
        System.out.println("最终价格为："+price);
        int score=70;
        if (score>=0&&score<=100){
            System.out.println("成绩合法");
        }
        /**
         * 1. 声明两个整型变量a和b并分别赋值，找到a和b中的最大值，并输出。用两种方式实现：条件运算符、if..else分支结构。
         */
        int a6=9,b2=10;
        if (a6>b2){
            System.out.println("max="+a6);
        }else {
            System.out.println("max="+b2);
        }
/**
 * 2. 声明一个整型变量year并存储年份，判断其是平年还是闰年，若是闰年则输出"某某某年是闰年"，否则输出"某某某年是平年"。
 *
 *    ```java
 *    /*
 *        闰年的判断公式:
 *        1)4年一闰，百年不闰，就是：能被4整除，并且，不能被100整除
 *          或者
 *        2)400年再闰，就是：能被400整除
 *    */
int year=2024;
if ((year%4==0&&year%100!=0)||year%400==0){
    System.out.println(year+"年是闰年");
}else {
    System.out.println(year+"年是平年");
}
/**
 * 3. 成绩等级判断：
 *
 *    > 注：考虑成绩的合法性：当不合法成绩时，输出"成绩不合法"
 *
 *    ```java
 *    A:成绩大于等于90
 *    B:成绩大于等于80并且小于90
 *    C:成绩大于等于60并且小于80
 *    D:成绩小于60
 *    ```
 */
int score1=-180;
if (score1>=90 && score1<=100){
    System.out.println("A");
}else if (score1>=80&& score1<=100){
    System.out.println("B");
}else if (score1>=60&& score1<=100){
    System.out.println("C");
}else if (score1>=0&& score1<=100){
    System.out.println("D");
}else {
    System.out.println("成绩不合法");
}




    }
}
